package TOP_Version1;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLRecoverableException;
import java.util.Scanner;

public class Top_ProfessorCreate {

	public static void createProfessor() {
		Top_ProfessorVO pv = new Top_ProfessorVO();
		Top_JDBC_SQL topsql = new Top_JDBC_SQL();
		Scanner sc = new Scanner(System.in);
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		boolean b = true;
		
		while ( b ) {
			System.out.print("교수 번호를 입력해 주세요 : ");
			boolean a = false;
			pv.setProf_no( sc.next() );
			a = Top_CheckNo.profNo(pv.getProf_no(), pv);
			if ( a ) { System.out.println("번호 생성 규칙에 어긋납니다. 다시 확인해주세요");
			} else  { break; }
		}
		System.out.print("교수 비밀번호를 입력해 주세요 : ");
		pv.setProf_pw( sc.next() );
		System.out.print("교수의 이름을 입력해 주세요 : ");
		pv.setProf_name( sc.next() );
		System.out.print("교수의 연락처를 입력해 주세요 : ");
		pv.setProf_tel( sc.next() );
		sc = new Scanner(System.in);
		System.out.print("교수 주소를 입력해 주세요 : ");
		pv.setProf_addr( sc.nextLine() );
		System.out.print("교수 사무실 위치를 입력해 주세요 : ");
		pv.setProf_office( sc.nextLine() );
		
		System.out.println( pv.toString() );
		sc = new Scanner(System.in);
		while ( b ) {
			System.out.print("저장하시겠습니까 ? [ Y / N ] : ");
			switch ( sc.next() ) {
			case "Y" : case "y" :
				try {
					conn = Top_JDBC_Connection.openDataBase();
					pstmt = conn.prepareStatement(topsql.ProfessorInsertSQL);
					pstmt.setString( 1, pv.getProf_no() );
					pstmt.setString( 2, pv.getProf_pw() );
					pstmt.setString( 3, pv.getProf_name() );
					pstmt.setString( 4, pv.getProf_tel() );
					pstmt.setString( 5, pv.getProf_addr() );
					pstmt.setString( 6, pv.getProf_office() );
					pstmt.executeUpdate();
				} catch ( SQLRecoverableException se ) {
					System.err.println("데이터베이스 연결에 실패했습니다. 네트워크를 확인하세요. 시스템을 종료합니다.");
					System.exit(0);
				} catch ( Exception e ) {
					e.printStackTrace();
				} finally {
					Top_JDBC_Connection.closeDataBase(conn, pstmt, rs);
				}
				b = false; break;
			case "N" : case "n" :
				System.err.println("교수 관련 업무 화면으로 이동합니다.");
				b = false; break;
			default :
				System.err.println("잘못 입력하셨습니다. 다시 입력해주세요");
			}
		}
		b = true;
		while ( b ) {
			System.out.print("교수 정보를 추가 등록 하시겠습니까? [ Y / N ] : ");
			switch ( sc.next() ) {
			case "Y" : case "y" :
				System.out.println("교수정보를 추가 등록 하겠습니다.");
				createProfessor();
				b = false; break;
			case "N" : case "n" :
				System.err.println("교수 관련 업무 화면으로 이동합니다.");
				b = false; break;
			default :
				System.err.println("잘못 입력하셨습니다. 다시 입력해주세요");
			}
		}
	}
}